فرض کن یه شرکت داری و میخوای به همه کارمندات ایمیل بزنی. برای این کار، به یه **سیستم ارسال ایمیل** نیاز داری که پیامها رو از یک کامپیوتر به کامپیوتر دیگه بفرسته. توی لینوکس، این کار رو **Mail Transfer Agent (MTA)** انجام میده. اما برای اینکه خودت بتونی از خط فرمان ایمیل بفرستی، به یه **ابزار کاربر (MUA)** مثل s-nail نیاز داری. این جلسه بهت یاد میده چطور هم MTA (مثل Postfix) رو راهاندازی کنی و هم با s-nail ایمیل بفرستی.
ارسال ایمیل در لینوکس کاربردهای متعددی دارد:
یک سیستم ایمیل کامل از چندین بخش تشکیل شده است که در تصویر زیر به خوبی نشان داده شده است:
مسئول ارسال و دریافت ایمیلها بین سرورها. ایمیل را از MUA دریافت کرده و به MTA مقصد ارسال میکند. به عبارت دیگر، MTA مثل خدمات پست است که نامهها را بین شهرها جابجا میکند.
sendmail، postfix، exim، openSMTPD
مسئول تحویل ایمیل به صندوق پستی کاربر (مثل /var/mail/ یا /var/spool/mail/). MDA مثل صندوق پستی است که نامه را به دست گیرنده میرساند.
procmail، maildropبرنامهای که کاربر برای خواندن و نوشتن ایمیل استفاده میکند. MUA مثل برنامهای است که شما برای مشاهده و ارسال ایمیل استفاده میکنید (مثل اپلیکیشن ایمیل روی گوشی).
Thunderbird، Outlook، mail (خط فرمان)، s-nail
محل ذخیرهسازی ایمیلها (معمولاً در /var/mail/ یا /var/spool/mail/).
در لینوکس، چندین MTA معروف وجود دارد که در تصویر به آنها اشاره شده است:
| MTA | توضیح |
|---|---|
| sendmail | قدیمیترین و محبوبترین MTA. پیچیده ولی قدرتمند. |
| postfix | جایگزین مدرن sendmail. سادهتر، امنتر و سریعتر. |
| exim | MTA پیشفرض در بسیاری از توزیعها (مثل دبیان). بسیار قابل تنظیم. |
| openSMTPD | یک MTA سبک و امن از پروژه OpenBSD. |
Postfix به صورت پیشفرض در اکثر توزیعها نصب نیست و باید آن را نصب کنید.
توضیح: در حین نصب، از شما چند سوال پیکربندی پرسیده میشود (نوع سایت، نام دامنه و ...). میتوانید گزینه Internet Site را انتخاب کنید.
apt install postfix و در رد هت با dnf install postfix نصب میشود.
توضیح: فعالسازی و راهاندازی سرویس Postfix.
s-nail یک برنامه خط فرمان برای ارسال و دریافت ایمیل است که نسخهٔ مدرن و توسعهیافتهٔ دستور کلاسیک mailx محسوب میشود. این ابزار به شما اجازه میدهد بدون نیاز به رابط گرافیکی، از طریق ترمینال ایمیل بفرستید، ایمیل بگیرید و مدیریت کنید.
-a به راحتی میتوانید فایل ضمیمه کنید.s-nail جایگزین mailx شده است.
برای استفاده از s-nail با یک سرویسدهندهٔ ایمیل خارجی (مثل Gmail یا سرور سازمانی)، باید تنظیمات را در فایل ~/.mailrc پیکربندی کنید.
توضیح: chmod 600 فقط به خود کاربر اجازه خواندن و نوشتن این فایل را میدهد (چون حاوی اطلاعات حساس مثل رمز عبور است).
یک نمونه تنظیمات برای استفاده از سرویس Gmail:
هرگز رمز عبور واقعی خود را در فایل ~/.mailrc ننویسید. از رمز عبور مخصوص برنامه (App Password) استفاده کنید.
توضیح: پس از وارد کردن آدرس ایمیل گیرنده، موضوع (Subject) و سپس متن را تایپ کنید. با زدن Ctrl+D ایمیل ارسال میشود.
توضیح: محتوای فایل report.txt به عنوان متن ایمیل به admin@example.com ارسال میشود.
توضیح: -a برای اضافه کردن پیوست استفاده میشود. < /dev/null باعث میشود که متن خالی باشد (فقط پیوست ارسال شود).
-a در s-nail برای افزودن پیوست (Attachment) استفاده میشود، در حالی که در mailx قدیمی برای افزودن هدر (Header) بود.
با اجرای mail بدون آرگومان، میتوانید ایمیلهای موجود در صندوق پستی خود را بخوانید.
توضیح: با وارد کردن شمارهٔ ایمیل (مثلاً 1)، محتوای آن را میتوانید بخوانید. با d 1 میتوانید ایمیل شماره ۱ را حذف کنید و با q خارج شوید.
mail، از ? برای مشاهده راهنما و از q برای خروج استفاده کنید.
یکی از رایجترین کاربردهای s-nail، ارسال ایمیل از طریق اسکریپتهای خودکار (مثل Cron jobs) است.
توضیح: خروجی اسکریپت backup.sh به عنوان متن ایمیل به admin@example.com ارسال میشود.
mail: ارسال و خواندن ایمیل از خط فرمان (معادل s-nail)/var/mail/username/etc/postfix/main.cf~/.mailrc